Many organizations use data stores for storing business data, such as financial data and operational data. In order to assist business users to examine their data, various data analyzing applications are proposed. Those data analyzing applications provide various views or reports of data to users. Those data analyzing applications typically have query engines that access the data stores to obtain desired data. The accessed data stores can be either relational or multidimensional stores, which are based on fundamentally different data storage technologies and hence produce fundamentally different result set structures.
Some data analyzing applications have Online Analytical Processing (OLAP) query engines to allow users to analyze multidimensional views of data This type of OLAP is sometimes called Multidimensional OLAP (MOLAP). A MOLAP engine summarizes business data into multidimensional views in advance, and places the summarized data in a cube structure. When a user request is received, the MOLAP engine accesses the summarized data, and thus the MOLAP engine can provide a response to the query very fast. The user can rotate the cube structured data to see a desired view of the data using the MOLAP engine.
There also exist Relational OLAP (ROLAP) query engines that extract data from traditional relational databases. ROLAP engines are able to create multidimensional views on the fly. In order to extract data, those ROLAP engines typically use complex Structured Query Language (SQL) statements against relational tables in the relational databases. ROLAP engines tend to be used on data that has a large number of attributes, where the data cannot be easily placed into a cube structure. ROLAP engines support multidimensional queries issued against relational databases. Some ROLAP engines translate OLAP queries into SQL queries, and other ROLAP query engines implement the access to relational databases using internal communication between components responsible for OLAP and relational operations.